package com.project.user.service.impl;

import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.project.user.mapper.UserCartMapper;
import com.project.user.domain.UserCart;
import com.project.user.service.IUserCartService;

/**
 * 购物车 服务层实现
 *
 * @author administrator
 */
@Service
public class UserCartServiceImpl implements IUserCartService {
    @Autowired
    private UserCartMapper userCartMapper;

    /**
     * 查询购物车信息
     *
     * @param userId 用户ID
     * @return 购物车信息
     */
    @Override
    public List<UserCart> selectUserCart(Long userId) {
        return userCartMapper.selectUserCart(userId);
    }

    /**
     * 查询购物车列表
     *
     * @param userCart 购物车信息
     * @return 购物车集合
     */
    @Override
    public List<UserCart> selectUserCartList(UserCart userCart) {
        return userCartMapper.selectUserCartList(userCart);
    }

    /**
     * 新增购物车
     *
     * @param userCart 购物车信息
     * @return 结果
     */
    @Override
    public int insertUserCart(UserCart userCart) {
        List<UserCart> userCarts = selectUserCartList(userCart);
        if (userCarts.isEmpty()) {
            return userCartMapper.insertUserCart(userCart);
        } else {
            userCart.setGoodsNum(userCart.getGoodsNum() + userCarts.get(0).getGoodsNum());
            return userCartMapper.updateUserCart(userCart);
        }
    }

    /**
     * 修改购物车
     *
     * @param userCart 购物车信息
     * @return 结果
     */
    @Override
    public int updateUserCart(UserCart userCart) {
        return userCartMapper.updateUserCart(userCart);
    }

    /**
     * 删除购物车对象
     *
     * @param map
     * @return 结果
     */
    @Override
    public int deleteUserCartByIds(Map<String, Object> map) {
        return userCartMapper.deleteUserCartByIds(map);
    }

    /**
     * 购物车餐饮种类的数量
     *
     * @param userId
     * @return
     */
    @Override
    public Integer countUserCart(Long userId) {
        return userCartMapper.countUserCart(userId);
    }
}
